// pages/FarmingvideoDetail/FarmingvideoDetail.js

// 使用云数据库
const db = wx.cloud.database();

// 引入获取当前时间类
const util = require('util.js');

Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 显示tab栏标志(取值'tab_1'和tab_2')
        state: 'tab_1',

        // 视频ID
        VideoId:'',

        // 农林视频详情
        Video:{},

        // 播放标志
        isPlay:false, 

        // 点赞标志
        isgood:false,
        
        // 收藏标志
        iscollection:false,

        // 浏览者信息
        view_user:[
            wx.getStorageSync('openid'),
            wx.getStorageSync('nickname'),
            wx.getStorageSync('avatarUrl')
        ],

        // 用户个人信息
        userInformation:{},

         // 待发布的评论内容
         inputText:'',

        //  相关推荐列表
        recommendList:[],
    },

    // 加载简介
    showinfo:function(){
        this.setData({
                state: 'tab_1',
        })
    },

    // 显示评论区
    showcomments:function(){
        this.setData({
            state: 'tab_2',
        })
    },
 // 播放量监测函数
    Toplay:function(){
        // 判断是否重复播放
        if(!this.data.isPlay){
            let that = this
            let temp = "Video[0].playNum"
            this.setData({
                [temp]:that.data.Video[0].playNum+1,
                isPlay:true
            })
            let id = that.data.Video[0]._id
            // console.log(id)
            db.collection('farmingVideo').doc(id).update({
                data:{
                    playNum:that.data.Video[0].playNum
                },
                success: res=>{
                    // console.log(res);
                    console.log("更新数据库播放数据成功")
                },
                fail: err=>{
                    console.log(err)
                }
            })
        }
        else return
    },
    // 点赞功能函数
    toGood:function(){
        // 判断登录状态
        if(!wx.getStorageSync('login')){
            wx.showModal({
                title: '温馨提示',
                content: '请您先登录',
                success(res) {
                    if (res.confirm){
                        wx.switchTab({
                          url: '/pages/user/user'
                        })
                    }
                }
            })
            return
        }
        // 用户已登录，可进行点赞
        else{
            let that = this
            let temp = "Video[0].goodNum"
            // 处于已点赞状态
            if(that.data.isgood){
                that.setData({
                    isgood:!that.data.isgood,
                    [temp]: that.data.Video[0].goodNum-1
                })
                // 将用户从点赞列表剔除
                for(let i = 0;i< that.data.Video[0].good_list.length;i++){
                    if(wx.getStorageSync('openid') === that.data.Video[0].good_list[i]){
                        that.data.Video[0].good_list.splice(i,1)
                    }
                }
            }
            // 处于未点赞状态
            else{
                that.setData({
                    isgood:!that.data.isgood ,
                    [temp]: that.data.Video[0].goodNum+1
                })
                // console.log(that.data.Article[0].good_list)
                // 将用户添加到点赞列表
                that.data.Video[0].good_list.push(wx.getStorageSync('openid'))
                // console.log(that.data.Article[0].good_list)
            }
            let id = that.data.Video[0]._id
            // console.log(id)
            db.collection('farmingVideo').doc(id).update({
                data:{
                    goodNum:that.data.Video[0].goodNum,
                    good_list:that.data.Video[0].good_list
                },
                success: res=>{
                    // console.log(res);
                    console.log("更新数据库点赞数据成功")
                },
                fail: err=>{
                    console.log(err)
                }
            })
        }
    },
    // 收藏功能函数
    toCollection:function(){
        // 判断登录状态
        if(!wx.getStorageSync('login')){
            wx.showModal({
                title: '温馨提示',
                content: '请您先登录',
                success(res) {
                    if (res.confirm){
                        wx.switchTab({
                          url: '/pages/user/user'
                        })
                    }
                }
            })
            return
        }
        // 用户已登录，可进行收藏
        else{
            let that = this
            let temp = "Video[0].collectionsNum"
            let promise = new Promise((reslove,reject)=>{
                // 处于已收藏状态
                if(that.data.iscollection){
                    that.setData({
                        iscollection:!that.data.iscollection,
                        [temp]: that.data.Video[0].collectionsNum-1,
                    })
                    // 将用户从收藏列表剔除
                    for(let i = 0;i< that.data.Video[0].collections_list.length;i++){
                        if(wx.getStorageSync('openid') === that.data.Video[0].collections_list[i]){
                            that.data.Video[0].collections_list.splice(i,1)
                        }
                    }
                    // 将视频从用户收藏列表剔除
                    for(let i = 0;i< that.data.userInformation[0].collectionsFarming_list.length;i++){
                        if(that.data.Video[0]._id === that.data.userInformation[0].collectionsFarming_list[i]._id){
                            that.data.userInformation[0].collectionsFarming_list.splice(i,1)
                        }
                    }
                    
                }
                // 处于未收藏状态
                else{
                    that.setData({
                        iscollection:!that.data.iscollection,
                        [temp]: that.data.Video[0].collectionsNum+1
                    })

                    // 将用户添加到收藏列表
                    that.data.Video[0].collections_list.push(wx.getStorageSync('openid'))

                    // 将视频添加到用户收藏列表
                    // 获取当前收藏的时间
                    let date = util.formatTime(new Date());
                    let timestamp = new Date().getTime();
                    // 将当前收藏时间和收藏内容整合到obj
                    let obj ={
                        _id:that.data.Video[0]._id,
                        date:date,
                        timestamp:timestamp
                    }
                    // 将obj存入用户收藏列表(头插)
                    that.data.userInformation[0].collectionsFarming_list.unshift(obj)
                }
                reslove()
            })
            promise.then(res=>{ 
                let id = that.data.VideoId
                // console.log(id)
                db.collection('farmingVideo').doc(id).update({
                    data:{
                        collectionsNum:that.data.Video[0].collectionsNum,
                        collections_list:that.data.Video[0].collections_list
                    },
                    success: res=>{
                        // console.log(res);
                        console.log("更新数据库收藏数据成功")
                    },
                    fail: err=>{
                        console.log(err)
                    }
                })
                let ID = that.data.userInformation[0]._id
                db.collection('user-information').doc(ID).update({
                    data:{
                        collectionsFarming_list:that.data.userInformation[0].collectionsFarming_list
                    },
                    success: res=>{
                        // console.log(res);
                        console.log("更新数据库个人农技课程收藏数据成功")
                    },
                    fail: err=>{
                        console.log(err)
                    }
                })
            })
        }
    },
    // 分享功能函数
    onShare:function(){
        let that = this
        let promise = new Promise((reslove,reject)=>{
            that.onShareAppMessage()
            reslove()
        })
        promise.then(res=>{ 
            // 分享数+1
            let temp = "Video[0].forwardNum"
            that.setData({
                [temp]: that.data.Video[0].forwardNum + 1
            })
            // 将分享数据更新到数据库
            let id = that.data.Video[0]._id
            console.log(id)
            db.collection('farmingVideo').doc(id).update({
                data:{
                    forwardNum: that.data.Video[0].forwardNum
                },
                success: res=>{
                    // console.log(res);
                    console.log("更新数据库分享数据成功")
                },
                fail: err=>{
                    console.log(err);
                }
            })  
        })
    },
     // 保存评论内容函数
     inputBindBlur: function(e) {
        this.setData({
            inputText: e.detail.value
        })
    },
    // 发布评论功能函数
    publishComments:function(){
        // 判断登录状态
        if(!wx.getStorageSync('login')){
            wx.showModal({
                title: '温馨提示',
                content: '请您先登录',
                success(res) {
                    if (res.confirm){
                        wx.switchTab({
                        url: '/pages/user/user'
                        })
                    }
                }
            })
            return
        }
        // 用户已登录，可进行评论
        else{
            let that = this
            if(that.data.inputText === ''){
                wx.showToast({
                    title: '内容不能为空哦',
                    icon: 'error',
                    duration: 2000,
                })      
            }
            else{
                let promise = new Promise((reslove,reject)=>{
                    wx.cloud.init();
                    wx.cloud.callFunction({
                        name: 'checkSensitivewords',
                        data: {
                            text: that.data.inputText
                        }
                    }).then((res) =>{
                        console.log(res)
                        if (res.result.code == "200") {
                            //检测通过
                            console.log("检测通过" )
                            reslove()
                        } 
                        else {
                            //执行不通过
                            wx.showToast({
                                title: '包含敏感字哦',
                                icon: 'error',
                                duration: 2000
                            })
                            return
                        }
                    })
                })
                promise.then(res=>{  
                    let promise2 = new Promise((reslove,reject)=>{
                        // 获取当前评论的时间
                        let date = util.formatTime(new Date());
                        // 将当前评论时间和评论内容存入阅读者列表
                        that.data.view_user.push(date)
                        that.data.view_user.push(that.data.inputText)
                        // 将阅读者列表存入文章评论列表(头插)
                        that.data.Video[0].comments_list.unshift(that.data.view_user)
                        // 评论数+1
                        let temp = "Video[0].commentsNum"
                        that.setData({
                            [temp]: that.data.Video[0].commentsNum + 1,
                            inputText:''
                        });
                        // 将评论数据更新到数据库
                        let id = that.data.Video[0]._id
                        console.log(id)
                        db.collection('farmingVideo').doc(id).update({
                            data:{
                                commentsNum:that.data.Video[0].commentsNum,
                                comments_list:that.data.Video[0].comments_list
                            },
                            success: res=>{
                                // console.log(res);
                                console.log("更新数据库评论数据成功")
                                reslove()
                            },
                            fail: err=>{
                                console.log(err);
                            }
                        })                               
                        // 将存储到阅读者列表里的评论时间和评论内容删除
                        that.data.view_user.pop()
                        that.data.view_user.pop()
                    })
                    promise2.then(res=>{
                        that.loadData()
                    })
                })
            }
        }
    },
    // 加载页面数据函数
    loadData:function(){
        let that = this
        db.collection('farmingVideo').where({
            _id:that.data.VideoId,
        }).get().then(res=>{
            console.log(res);
            res.data[0].info = res.data[0].info.split('&br').join('\n')
            that.setData({
                Video:res.data
            })
            // 判断当前用户点赞状态
            for(let i = 0;i<res.data[0].good_list.length;i++){
                // console.log("用户id"+wx.getStorageSync('openid'))
                if(wx.getStorageSync('openid') === res.data[0].good_list[i]){
                    // console.log(res.data[0].good_list[i])
                    that.setData({
                        isgood: true
                    })                       
                }
            }

            // 判断当前用户加入课程状态
            for(let i = 0;i<res.data[0].collections_list.length;i++){
                if(wx.getStorageSync('openid') === res.data[0].collections_list[i]){
                    that.setData({
                        iscollection: true
                    })                       
                }
            }

            // 加载相关推荐
            let Type = res.data[0].type
            console.log(111)
            db.collection('farmingVideo').where({
                type:Type,
            }).get().then(res=>{
                console.log(res);
                // 去除该视频
                for(let i = 0; i < res.data.length; i++){
                    if(that.data.VideoId === res.data[i]._id){
                        res.data.splice(i,1)
                    }
                }
                // 打乱重排序
                for (let i = 0; i < res.data.length; i++) {
                    let iRand = parseInt(res.data.length * Math.random());
                    let temp = res.data[i];
                    res.data[i] = res.data[iRand];
                    res.data[iRand] = temp;
                }
                that.setData({
                    recommendList:res.data
                })
            }).catch(err=>{
                console.log(err);
            })  
            console.log(222)
        }).catch(err=>{
            // console.log(err);
        })

        // 加载用户信息
        db.collection('user-information').where({
            _openid:that.data. view_user[0],
        }).get().then(res=>{
            that.setData({
                userInformation:res.data
            })
        }).catch(err=>{
            // console.log(err);
        })   
    },
    // 跳转到农技教学内容详情页
    jumpFarmingvideoDetail:function(e){
        // console.log(e)
        let data_id = e.currentTarget.dataset.id;
        // console.log(data_id);
        // 将内容id作为参数传到内容详情页
        wx.navigateTo({
          url: '/pages/FarmingvideoDetail/FarmingvideoDetail?id='+data_id,
        })
      },

    //返回上一个页面
    jumpgoback:function(){
        wx.navigateBack({
        delta: 1,
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        console.log('视频id为'+options.id)
        this.setData({
           VideoId:options.id   
        })
        // 加载视频数据
        this.loadData()
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function (res) {
        let url = encodeURIComponent('/pages/FarmingvideoDetail/FarmingvideoDetail?id='+this.data.VideoId);
        return {
            title: '分享了一个视频',
            path: '/pages/index/index?url='+url,
        }
    }
})